/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipartek.formacion.gestformwww.modelo;

import com.ipartek.formacion.gestformwww.modelo.beans.AlumCurso;
import com.ipartek.formacion.gestformwww.modelo.beans.Curso;
import com.ipartek.formacion.gestformwww.modelo.beans.FiltroCurso;
import com.ipartek.formacion.gestformwww.modelo.clases.DAOFactory;
import com.ipartek.formacion.gestformwww.modelo.interfaces.ICursoDAO;
import com.ipartek.formacion.gestformwww.modelo.beans.TipoCurso;
import com.ipartek.formacion.gestformwww.modelo.beans.excepciones.GestorFormacionExcepcion;
import java.util.ArrayList;

/**
 *
 * @author Sara y Xarles; Aitor / Victor; Alvaro
 */
public class ModeloCurso {

    private DAOFactory factoria = null;

    public ModeloCurso() {
        factoria = DAOFactory.getDAOFactory(DAOFactory.SQLSERVER);
    }
//dbaykbp.bn

    public int contarCursos(FiltroCurso filtro) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().contarCursos(filtro);
    }

    //dbaykbp.en
    public int crearCurso(Curso curso) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().crearCurso(curso);
    }

    public void eliminarCurso(int idCurso) throws GestorFormacionExcepcion {
        factoria.getICursoDAO().eliminarCurso(idCurso);
    }

    public void eliminarCurso(ArrayList<Integer> aIdCurso) throws GestorFormacionExcepcion {
        for (int i:aIdCurso){
            factoria.getICursoDAO().eliminarCurso(i);
        }
    }

    public ArrayList getTodosCursos() throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().getTodosCursos();
    }

    public ArrayList getTodosCursosActivos() throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().getTodosCursosActivos();
    }
    //dbaykbp.bn

    public ArrayList<Curso> listarCursos(FiltroCurso filtro) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().listarCursos(filtro);
    }

    //Sara y Alvaro
    public ArrayList<Curso> listarCursosDeAlumno(int idAlumno) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().listarCursosDeAlumno(idAlumno);
    }

    //dbaykbp.bn
    public ArrayList<String> listarLugares() throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().listarLugares();
    }

    //dbaykbp.bn
    public ArrayList<TipoCurso> listarTipoCurso() throws GestorFormacionExcepcion {
        return factoria.getITipoCursoDAO().listarTipoCurso();
    }

    public int modificarCurso(Curso curso) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().modificarCurso(curso);
    }

    public Curso visualizarCurso(int Id) throws GestorFormacionExcepcion {
        
        return factoria.getICursoDAO().visualizarCurso(Id);
    }

    public boolean existecurso(int idCurso) throws GestorFormacionExcepcion {
        ICursoDAO dao = factoria.getICursoDAO();
        boolean existe = dao.existecurso(idCurso);
        return existe;
    }
    //Aitor y Xarles
    public void modificarInfoCurso(AlumCurso alumcurso) throws GestorFormacionExcepcion{
        factoria.getIAlumCursoDAO().modificarInfoCurso(alumcurso);
    }

    public ArrayList getMailsAlumnosCurso(int idCurso) throws GestorFormacionExcepcion {
        return factoria.getICursoDAO().getMailsAlumnosCurso(idCurso);
    }
}
